﻿/**
 * FansUnion-JS-Date1.0
 *
 * QQ: 240370818
 * Email: LeiWen@FansUnion.cn,zhaoshaolongjj@163.com
 * Date:2013.12.11
 * Copyright 2013-2014, leiwen,zhaoshaolong
 */
 
/**
 *日期工具类
 *
 */
var DateUtil = (function(win, doc) {
    
	var DateUtil = win.DateUtil || {};
	
	/**
	 *将日期字符串转换成日期对象
	 *str：字符串类型的日期
	 */
	DateUtil.parseToDate = function(str){
	    return new Date(DateUtil.parseToLong(str));
	};
	/**
	  *将日期字符串转换成毫秒数
	  *str：字符串类型的日期
	  */
	DateUtil.parseToLong = function(str){
	    return Date.parse(str.replace(/\-/g, '/'));
	};
	
	/**
	 *在原有日期基础上，加上N天
	 *date：Date或String类型的日期
	 *num:需要增加的天数,num也可以为负数
	 */
	DateUtil.addDay = function(date, num){
	    var newDate ;
		if(date instanceof Date){
		  newDate = date;
		}else{
		  newDate= new Date(DateUtil.toLong(date));
		}
	    newDate.setDate(newDate.getDate() + num);
	    return newDate;
	};
	
	/**
	 *将当前日期转换成“YYYY-MM-DD HH:mm:SS”格式的字符串
	 *date:Date类型的日期
	 */
	DateUtil.toYMDHMS = function(date){
	    return DateUtil.toYMD(date) + ' ' + DateUtil.toHMS(date);
	};
	
	DateUtil.numberToYmdhms = function(number){
		if(!number){
			return;
		}
		var d = new Date(number);
		return DateUtil.toYMDHMS(d);
	}
	
	/**
	 *将日期转换成“YYYY-MM-DD”格式的字符串
	 *date:Date类型的日期
	 */
	DateUtil.toYMD = function(date){
	  //从 Date 对象以四位数字返回年份
	    var year = date.getFullYear();
		//从 Date 对象返回月份 (0 ~ 11)
	    var month = date.getMonth() + 1;
		//从 Date 对象返回一个月中的某一天 (1 ~ 31)
	    var d = date.getDate();
	    if(month < 10){
	        month = '0' + month;
	    }
	    if(d < 10){
	        d = '0' + d;
	    }
	    return year + '-' + month + '-' + d;
	};
	
	/**
	 *将日期转换成“HH-mm-SS”格式的字符串
	 *date:Date类型的日期
	 */
	DateUtil.toHMS=function(date){
	    var h = date.getHours();
	    var m = date.getMinutes();
	    var s = date.getSeconds();
	   
	    if(h < 10){
	    	h = '0' + h;
	    }
	    if(m < 10){
	    	m = '0' + m;
	    }
	    if(s < 10){
	    	s = '0' + s;
	    }
	    return  h + ':' + m + ':' + s;
	}
	
	/**
	 *日期比较函数
	 *date1:Date或String类型的日期
	 *date2:Date或String类型的日期
	 */
	DateUtil.compareTo = function(date1, date2){
	    var longTime1;
		var longTime2;
		if(date1 instanceof Date){
		  longTime1=date1.getTime;
		}else{
		  var newDate1 = DateUtil.parseToDate(date1);
		  longTime1=newDate1.geTime();
		}
		
		if(date2 instanceof Date){
		  longTime2=date2.getTime;
		}else{
		  var newDate2 = DateUtil.parseToDate(date2);
		  longTime2=newDate2.geTime();
		}
		
	    return  longTime1-longTime2;
	};
	/**
	 *一个周的第几天（把星期一当作第1天）
	 *
	 */
	DateUtil.offsetOfWeek = function(date){
	    return (date.getDay() || 7) - 1;
	};
	/**
	 *一个周的第一天，Date类型
	 *
	 */
	DateUtil.firstOfWeek = function(date){
	    return DateUtil.addDay(date, -DateUtil.offsetOfWeek(date));
	};
	return DateUtil;
})(window, document);
